﻿using JTTD.Domain.Dtos;
using JTTD.Domain.Dtos.CompanyBill.Request;
using JTTD.Domain.Dtos.CompanyBill.Response;
using JTTD.Domain.Dtos.CompanyUserInfo.Request;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace JTTD.Domain.IService
{
    /// <summary>
    /// 店铺账单服务
    /// </summary>
    public interface ICompanyBillService : IDependency
    {
        /// <summary>
        /// 获取指定店铺没有支付的账单
        /// </summary>
        /// <param name="shopId"></param>
        /// <returns></returns>
        Task<ApiResult<List<CompanyBillResponseDto>>> GetNoPayBillList(int shopId);

        /// <summary>
        /// 分页获取指定店铺所有账单
        /// </summary>
        /// <param name="shopId"></param>
        /// <param name="search"></param>
        /// <returns></returns>
        Task<ApiResult<PageResult<CompanyBillResponseDto>>> GetPageList(int shopId,SearchCompanyBillDto search);

        /// <summary>
        /// 设置账单
        /// </summary>
        /// <param name="shopId"></param>
        /// <param name="dtos"></param>
        /// <returns></returns>
        Task<ApiResult<bool>> SetCompanyBill(int shopId, List<SetCompanyBillRequestDto> dtos);

        /// <summary>
        /// 删除账单
        /// </summary>
        /// <param name="billId"></param>
        /// <returns></returns>
        Task<ApiResult<bool>> DeleteCompanyBill(int billId);
        /// <summary>
        /// 确认账单已经支付
        /// </summary>
        /// <param name="billId"></param>
        /// <returns></returns>
        Task<ApiResult<bool>> ConfirmBill(int billId);
    }
}
